package cn.tx.Jpython;

import org.python.core.PyArray;
import org.python.core.PyFunction;
import org.python.core.PyInteger;
import org.python.core.PyObject;
import org.python.util.PythonInterpreter;

import java.util.Properties;

public class Mode2 {
    public static void main(String[] orgs){
        Properties props = new Properties();
        props.put("python.home", "path to the Lib folder");
        props.put("python.console.encoding", "UTF-8");
        props.put("python.security.respectJavaAccessibility", "false");
        props.put("python.import.site", "false");
        Properties preprops = System.getProperties();
        PythonInterpreter.initialize(preprops, props, new String[0]);

        // TODO Auto-generated method stub
        /*PythonInterpreter interpreter = new PythonInterpreter();
        interpreter.execfile("D:\\IdeaProjects\\studentssm\\src\\main\\java\\cn\\tx\\Jpython\\add.py");

        // 第一个参数为期望获得的函数（变量）的名字，第二个参数为期望返回的对象类型
        PyFunction pyFunction = interpreter.get("add", PyFunction.class);
        int a = 5, b = 10;
        //调用函数，如果函数需要参数，在Java中必须先将参数转化为对应的“Python类型”
        PyObject pyobj = pyFunction.__call__(new PyInteger(a), new PyInteger(b));
        System.out.println("the anwser is: " + pyobj);*/




      /*  1:比较相邻的元素。如果第一个比第二个大，就交换他们两个。

        2:对每一对相邻元素作同样的工作，从开始第一对到结尾的最后一对。这步做完后，最后的元素会是最大的数。

        3:针对所有的元素重复以上的步骤，除了最后一个。

        4:持续每次对越来越少的元素重复上面的步骤，直到没有任何一对数字需要比较。*/

        PythonInterpreter interpreter = new PythonInterpreter();
        interpreter.execfile("G:\\IdeaProjects\\studentssm\\src\\main\\java\\cn\\tx\\Jpython\\bubbleSort.py");

        // 第一个参数为期望获得的函数（变量）的名字，第二个参数为期望返回的对象类型
        PyFunction pyFunction = interpreter.get("bubbleSort", PyFunction.class);
        //调用函数，如果函数需要参数，在Java中必须先将参数转化为对应的“Python类型”
        PyObject pyobj = pyFunction.__call__();
        System.out.println("the anwser is: " + pyobj);

    }
}
